package com.wh.wisdomsite.xbox.ba.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.ba.entity.Role;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 角色Service
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.us.service
 * @author: 丁奕
 * @date: 2018-08-03 11:39
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
public abstract interface IRoleService extends IService<Role> {

    /**
     * 获取完整信息的角色
     * @param id
     * @return
     */
    Map<String, Object> getMapById(Serializable id);

    /**
     * 获取完整信息的role分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String, Object>> getMapsPage(Page var1, Wrapper<Role> var2);

    /**
     * 根据角色ID先删除所有关联的角色菜单
     * @param roId
     * @return
     */
    Integer deleteMenuRoleByRoleId(Serializable roId);

    /**
     * 根据总公司ID查询可用的所有角色list
     * @param companyId
     * @return
     */
    List<Map<String, Object>> selectListByCompanyId(Integer companyId);

    /**
     * 根据用户ID查询所拥有的角色List
     * @param id
     * @return
     */
    List<Role> getRoleListByUserId(String id);

    /**
     * 根据角色名称及所属公司id查询对应的角色
     * @param roleName
     * @param compId
     * @param parentCompId
     * @param roId
     * @return
     */
    List<Role> getRoleListByNameAndCompId(String roleName, String compId,Integer parentCompId,String roId);
}
